package com.jsb.laundry.service.impl;

import com.jsb.laundry.dao.RiderUserInfoDao;
import com.jsb.laundry.model.dto.UserInfoRequest;
import com.jsb.laundry.model.entity.TeamCentre;
import com.jsb.laundry.model.vo.LoginUserInfoVo;
import com.jsb.laundry.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class LoginServiceImpl implements LoginService {
    @Autowired
    private RiderUserInfoDao userInfoDao;
    @Override
    public int userLogin() {
        return userInfoDao.userLogin();
    }

    /**
     * 根据open_id查询用户
     *
     * @param openId
     * @return
     */
    @Override
    public String findByUserId(String openId) {
        return userInfoDao.findByUserId(openId);
    }

    /**
     * 用户注册生成的个人信息
     *
     * @param userInfoRequest
     * @return
     */
    @Override
    public int addUser(UserInfoRequest userInfoRequest) {
        return userInfoDao.addUser(userInfoRequest);
    }

    /**
     * 根据userid查询个人信息
     *
     * @param userId
     * @return
     */
    @Override
    public LoginUserInfoVo.UserInfo findUserInfo(String userId) {
        return userInfoDao.findUserInfo(userId);
    }

    /**
     * 注册用户资金信息
     *
     * @param userId
     * @return
     */
    @Override
    public int addCapitalAccount(String userId) {
        return userInfoDao.addCapitalAccount(userId);
    }

    /**
     * 向银行卡添加信息
     *
     * @param userId
     * @return
     */
    @Override
    public int addUserInfoForBank(String userId) {
        return userInfoDao.addUserInfoForBank(userId);
    }

    /**
     * 查看邀请人是否是我们平台的用户
     *
     * @param inviterId
     * @return
     */
    @Override
    public String findByOpenId(String inviterId) {
        return userInfoDao.findByOpenId(inviterId);
    }

    /**
     * 添加邀请人
     *
     * @param inviterId
     * @param newUserId
     * @return
     */
    @Override
    public int addRiderPromotion(String inviterId, String newUserId) {
        return userInfoDao.addRiderPromotion(inviterId,newUserId);
    }

    /**
     * 查看邀请人等级、和邀请人数、邀请人id
     *
     * @param inviterId
     * @return
     */
    @Override
    public TeamCentre getRiderLevel(String inviterId) {
        return userInfoDao.getRiderLevel(inviterId);
    }

    /**
     * 改变邀请人等级
     *
     * @param inviterId
     * @param userLevel
     * @return
     */
    @Override
    public int updRiderLevel(String inviterId, Integer userLevel) {
        return userInfoDao.updRiderLevel(inviterId,userLevel);
    }

    /**
     * 获取邀请人的手下的等级
     *
     * @param riderId
     * @return
     */
    @Override
    public List<String> getSubLevel(String riderId) {
        return userInfoDao.getSubLevel(riderId);
    }

}
